1. Field of the Invention
This invention relates to data display systems and in particular to such systems that can display data relating to more than one task at a time, and are connected to or include a data processing device which can be used for the concurrent processing of different tasks.
2. Prior Art
Viewporting is the generic name given to the technique of defining a particular screen area as the viewport to which an application task writes and displays data--graphic and alphanumeric. When a user is using a display terminal to interact with more than one application task, or program, then different areas of the screen will be allocated to different applications, this is called multiple viewporting. This concept is explained in "Fundamentals of Interactive Computer Graphics" by Foley and Van Dam, published by Addison Wesley 1982.
A further development has been the so-called "messy desk" concept in which multiple viewports overlap and the user regards the viewport which overlays all the others as that which has the highest priority and the one that is currently being used.
Viewporting designs for current raster displays use the concept that only the viewport that has the highest priority, i.e. on top of, or overlaying all others, can have its display modified. This, in effect, corresponds to a single application situation and requires the complete re-drawing of a viewport whenever it is promoted to the highest priority after it has been overlaid.
An example of such a technique is described in European Patent Application No. 083301868.2. (U.S. Pat. No. 4,642,790). In that application is described a multi-viewport system in which the writing of application data into overlapping viewports is controlled by a screen manager. The screen manager maintains a series of priority flags for each pixel (bit in the screen buffer) relating to the layers of the viewports, and a viewport order list. Only the current, that is highest priority viewport is written into by an application. There is no provision for having more than one application writing into a lower priority viewport overlapped by the current viewport other than serially, that is writing to one viewport is completed before processing the next one.
An advance on the above technique is described in European patent application No. 83307697.9 (U.S. application No. 674,799 filed 11/26/84) in which is described a technique for writing into the visible space of overlaid viewports while the user is currently interacting with a higher priority viewport. An extra bit plane is used as a mask buffer and when an application task has new data to display in an associated viewport the mask is set to inhibit writing into areas of the display screen that are covered by higher priority viewports.
The disadvantage of using the extra bit plane as a mask buffer is the requirement for the extra circuitry in the display apparatus.
The clipping of lines against a simple rectangular boundary is well understood, (see Fundamentals of Interactive Computer Graphics, quoted above). However the clipping becomes more complex in the case in which a number of upright rectangular graphics pictures which overlap each other are to be displayed on the screen. The overlapping may be quite arbitrary and any one region may have more than one (disjoint) region of visibility. There may also be embedded obscured regions and also the clipping boundaries may not be simple rectangles.
The problem to be solved is to provide a display apparatus that when it is operating with multiple viewports it has the capability to determine the parts of a graphic line primitive to be displayed on the screen for lower priority, overlapped viewports.
One solution to the problem is to provide a control system for a display apparatus that controls the processors to divide the visible part of each picture into rectangles, each one of which is completely visible. In order to draw one picture, its display list must be processed once for each such rectangle, clipping to the rectangle's boundary. The solution has the following disadvantages:
a. A single, apparently continuous, line might cross a boundary between adjacent rectangles, and therefore be drawn in stages (with many other primitives being drawn in between). Care must be exercised to ensure that the operator does not notice any discontinuity at this boundary. In particular: PA1 b. The display list has to be processed from a high level once for each rectangle. In particular, transformations are performed once for each rectangle, rather than once for the whole picture, as in the method of the current invention described below, so the performance is likely to be inferior. PA1 c. Unless the drawing engine is extremely fast, the operator will notice the picture being split up into these rectangles. The human factors of this are probably inferior to those of the method described, where there is no such split. PA1 (a) storing in a random access store indications of the position and size of each viewport area, together with an indication of the priority level of the viewport area, PA1 (b) constructing a master matrix of (2n+1).sup.2 elements, where n is equal to the number of viewport areas, by assigning a vertical component to each vertical coordinate of each viewport area and a horizontal component to each horizontal coordinate of each viewport area, and for each element so formed storing an indication of the highest priority level of the viewports covered by the element, PA1 (c) receiving an indication that the display of a particular viewport is to be changed, PA1 (d) constructing a condensed matrix for the viewport area, the display of which is to be changed, by storing, for each element, an indication whether or not it covers the particular viewport that is to be changed, and associating the corresponding elements of identical rows and columns together, PA1 (e) receiving indications of the coordinate values of the display to be displayed in the viewport area, PA1 (f) using the second matrix to determine the coordinates of the received display information that can be displayed in the viewport area, and PA1 (g) storing the indications of the coordinate values in the random access store.
(1) There may be a slight kink in the line, if the full line's parameters have not been used for the Bresenham algorithm coefficients. To overcome this problem, the true endpoints of the line need to be remembered even after the line has been clipped, this causes further processing and lengthens the drawing period. PA2 (2) If the line is not solid (i.e. it is dashed, dotted, etc.) some way must be found of getting the correct starting point in the line-type definition at the start of each stage.
The solution of the problem described in the present application includes the provision of a method of operating a data display device and the provision of a data display system configured to operate the method.